package com.xd.core.business.vo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xd.core.business.entity.IncomingCommonLoan;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 进件信息表
 * </p>
 *
 * @author ZX
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "IncomingInfo对象", description = "进件信息表")
public class InsuranceIncomingCreditInfo implements Serializable {

    @ApiModelProperty(value = "进件ID")
    private Integer incomingId;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "经办人姓名")
    private String attnName;

    @ApiModelProperty(value = "证件号")
    private String idCard;

    @ApiModelProperty(value = "经办人身份证")
    private String attnIdCard;

    @ApiModelProperty(value = "身份证正面地址")
    private String idCardFrontUrl;

    @ApiModelProperty(value = "身份证背面地址")
    private String idCardReverseUrl;

    @ApiModelProperty(value = "手机号")
    private String phone;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "所在城市")
    private String city;

    @ApiModelProperty(value = "现住地址")
    private String address;

    @ApiModelProperty(value = "法人身份证正面")
    private String legalCardFrontUrl;

    @ApiModelProperty(value = "签约方式 （0-法人签约， 1-经办人签约）")
    private String signingMethod;

    @ApiModelProperty(value = "签约方式 （0-法人签约， 1-经办人签约）")
    private String signingMethodCode;

    @ApiModelProperty(value = "法人身份证反面")
    private String legalCardReverseUrl;

    @ApiModelProperty(value = "法人证件号")
    private String legalIdCard;

    @ApiModelProperty(value = "法人手机号")
    private String legalPhone;

    @ApiModelProperty(value = "法人/经办人邮箱")
    private String legalEmail;

    @ApiModelProperty(value = "营业执照")
    private String license;

    @ApiModelProperty(value = "公司名称")
    private String companyName;

    @ApiModelProperty(value = "统一社会信用代码")
    private String unifiedSocialCreditCode;

    @ApiModelProperty(value = "公司成立日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date companyStartTime;

    @ApiModelProperty(value = "法人姓名")
    private String legalEntityName;

    @ApiModelProperty(value = "企业详细地址")
    private String companyAddress;

    @ApiModelProperty(value = "企业所在地")
    private String companySqes;

    @ApiModelProperty(value = "主体类型（0--自然人，1--企业）")
    private String principalType;

    @ApiModelProperty(value = "借款主体身份 (0-法定代表人 ,1-股东 ,2-挂靠人)")
    private String borrowerEntityType;

    @ApiModelProperty(value = "订单状态(0--启用,1--停用)")
    private String isEnable;

    @ApiModelProperty(value = "城市坐标")
    private String citySqes;

    @ApiModelProperty(value = "进件订单号")
    private String incomingOrder;

    @ApiModelProperty(value = "授信ID")
    private Integer creditId;

    @ApiModelProperty(value = "授信金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "借款人账户名")
    private String accountName;

    @ApiModelProperty(value = "借款人收款账户")
    private String receivingAccount;

    @ApiModelProperty(value = "借款人开户银行")
    private String bank;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "授信人ID")
    private Integer userId;

    @ApiModelProperty(value = "还款开户行")
    private String repayBank;

    @ApiModelProperty(value = "还款账户名")
    private String repayName;

    @ApiModelProperty(value = "绑卡状态(0--未绑定,1--已绑定)")
    private String cardStatus;

    @ApiModelProperty(value = "报文流水号")
    private String msgId;

    @ApiModelProperty(value = "银行预留手机号")
    private String bankPhone;

    @ApiModelProperty(value = "保险种类（0--车险，1--工程机械保险）")
    private String insuranceType;

    @ApiModelProperty(value = "商业保险总金额")
    private BigDecimal insuranceAmount;

    @ApiModelProperty(value = "代缴其他保费金额")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "借款期数")
    private Integer term;

    @ApiModelProperty(value = "每月还款日")
    private String repayDay;

    @ApiModelProperty(value = "收费模式（0--前置，1--后置，2--前置+后置）")
    private String chargeModel;

    @ApiModelProperty(value = "借款方式（0--等额本金，1--等额本息，2--等本等息）")
    private String loanMethod;

    @ApiModelProperty(value = "预付款支付方式(0--银行转账，1--银行代扣)")
    private String payType;

    @ApiModelProperty(value = "预付款还款账号")
    private String repayAccount;

    @ApiModelProperty(value = "首付比例（单位：%）")
    private BigDecimal downRepaymentRate;

    @ApiModelProperty(value = "首付金额（单位：元）")
    private BigDecimal downRepaymentAmount;

    @ApiModelProperty(value = "前置服务费率（单位：%）")
    private BigDecimal preServiceFeeRate;

    @ApiModelProperty(value = "后置服务费率（单位：%）")
    private BigDecimal postServiceFeeRate;

    @ApiModelProperty(value = "综合年华利率（单位：%）")
    private BigDecimal rate;

    @ApiModelProperty(value = "前置服务费")
    private BigDecimal preServiceFee;

    @ApiModelProperty(value = "后置服务费")
    private BigDecimal postServiceFee;

    @ApiModelProperty(value = "借款金额")
    private BigDecimal loanAmount;

    @ApiModelProperty(value = "预付款总金额")
    private BigDecimal advanceAmount;

    @ApiModelProperty(value = "特约退保要求（0--按天退保，1--按月退保或未列明，2--无）")
    private String refundRequest;

    @ApiModelProperty(value = "缴费通知书")
    private String paymentInstructions;

    @ApiModelProperty(value = "挂靠协议")
    private String hangingAgreement;

    @ApiModelProperty(value = "其他资料")
    private String otherAnnex;

}
